//发送请求医院类别的params参数类型
export interface getHosParamsTypes {
  hoscode?: string;
  hosname?: string;
  hostype?: string;
  provinceCode?: string;
  cityCode?: string;
  districtCode?: string;
  status?: 0 | 1;
}

export interface bookingType {
  cycle: number;
  releaseTime: string;
  stopTime: string;
  quitDay: number;
  quitTime: string;
  rule: string[];
}
//医院列表get请求的返回值中content数组中每一条的数据类型
export interface getHosReturnContType {
  id: string;
  createTime: string;
  updateTime: string;
  isDeleted: number;
  param: {
    hostypeString: string;
    fullAddress: string;
  };
  hoscode: string;
  hosname: string;
  hostype: string;
  provinceCode: string;
  cityCode: string;
  districtCode: string;
  address: string;
  logoData: string;
  intro: string;
  route: string;
  status: 0 | 1;
  bookingRule: bookingType | null;
}
//请求医院列表的返回值中content的数组类型
export type hospitalContentType = getHosReturnContType[];
//请求医院列表的返回值类型
export interface hospitalListReqReturnType {
  content: hospitalContentType;
  pageable: {
    sort: {
      sorted: boolean;
      unsorted: boolean;
      empty: boolean;
    };
    pageNumber: number;
    pageSize: number;
    offset: number;
    paged: boolean;
    unpaged: boolean;
  };
  totalElements: number;
  totalPages: number;
  last: boolean;
  first: boolean;
  sort: {
    sorted: boolean;
    unsorted: boolean;
    empty: boolean;
  };
  numberOfElements: number;
  size: number;
  number: number;
  empty: boolean;
}

//请求省份的返回值每一条数据的类型,因为请求市和县以及请求医院类型的返回值与省份的一模一样，所以市的类型也用这个
export interface provinceItemType {
  id: number;
  createTime: string;
  updateTime: string;
  isDeleted: number;
  param: object;
  parentId: number;
  name: string;
  value: string;
  dictCode: null;
  hasChildren: boolean;
}
//请求省份完整的返回值类型
export type provinceReturnType = provinceItemType[];

//医院详情的返回值类型
export interface hospitalDetailType {
  bookingRule?: bookingType;
  hospital?: getHosReturnContType;
}
//请求医院科室的返回值每一项的类型
export interface hospitalDepartmentItemType {
  depcode: string;
  depname: string;
  children: hospitalDepartmentType | null;
  // children的类型和返回值的所有类型一致，也是有所有数据对象组成的数组，但因为chlidren中的children是null，所以需要联合类型
}
//请求医院科室返回值的所有类型
export type hospitalDepartmentType = hospitalDepartmentItemType[];
//定义请求排班时间的参数类型
export interface scheduleTimeParamsType {
  page: number;
  limit: number;
  hoscode: string;
  depcode: string;
}
//bookingScheduleList的类型
export interface bookingScheduleListItemType {
  workDate: string;
  workDateMd: null;
  dayOfWeek: string;
  docCount: number;
  reservedNumber: number;
  availableNumber: number;
  status: null;
}
export type bookingScheduleListType = bookingScheduleListItemType[];

//请求医院的排班时间的返回值的类型
export interface hosScheduleTimeType {
  total: number;
  bookingScheduleList: bookingScheduleListType;
  baseMap: {
    hosname: string;
  };
}
//请求某个时间科室的详细排班信息的参数类型
export interface findScheduleListParamsType {
  hoscode: string;
  depcode: string;
  workDate: string;
}
//请求科室详细排班信息的返回值每一项类型
export interface findScheduleListReturnItemType {
  id: string;
  createTime: string;
  updateTime: string;
  isDeleted: number;
  param: {
    dayOfWeek: string;
    depname: string;
    hosname: string;
  };
  hoscode: string;
  depcode: string;
  title: string;
  docname: string;
  skill: string;
  workDate: string;
  workTime: number;
  reservedNumber: number;
  availableNumber: number;
  amount: number;
  status: 0 | 1;
  hosScheduleId: string;
}
//请求科室详细排班信息的返回值完整类型
export type findScheduleListReturnType = findScheduleListReturnItemType[];
